package com.lonely.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.lonely.common.core.domain.Cascader;
import com.lonely.common.core.domain.Select;
import com.lonely.system.domain.entity.SysProductionLine;
import com.lonely.system.domain.dto.productionline.SysProductionLineStatQueryDto;
import com.lonely.system.domain.dto.productionline.SysProductionLineSubmitDto;
import com.lonely.system.domain.vo.system.productionline.SysProductionLineStatsVo;

import java.util.List;

/**
 * @author: 黄志标
 * @date: 2025/5/27 11:36
 * @description: 产线接口服务
 */
public interface ISysProductionLineService extends IService<SysProductionLine> {


    /**
     * 创建产线
     *
     * @param submitDto
     */
    void create(SysProductionLineSubmitDto submitDto);

    /**
     * 编辑产线
     *
     * @param submitDto
     */
    void edit(SysProductionLineSubmitDto submitDto);

    /**
     * 产线统计
     *
     * @param queryDto
     * @return
     */
    SysProductionLineStatsVo stat(SysProductionLineStatQueryDto queryDto);


    /**
     * 产线下拉框列表
     *
     * @return
     */
    List<Select> getSelect(Long factoryId);

    /**
     * 产线对应的生产工种下拉框列表
     *
     * @param productionLineId
     * @return
     */
    List<Select> getWorkTypeSelect(Long productionLineId);

    /**
     * 暂停分单
     *
     * @param plId
     */
    void suspendSplitOrders(Long plId);

    /**
     * 停用产线/分组
     *
     * @param plId
     */
    void stopUsing(Long plId);

    /**
     * 获取产线级联选择器数据
     *
     * @return
     */
    List<Cascader> getProductionLineCascader();


}
